package cn.technology.forum.service;

import cn.technology.forum.dto.NotificationDTO;
import cn.technology.forum.dto.PaginationDTO;
import cn.technology.forum.dto.UserDTO;
import cn.technology.forum.enums.NotificationStatusEnum;
import cn.technology.forum.enums.NotificationTypeEnum;
import cn.technology.forum.exception.CustomizeErrorCode;
import cn.technology.forum.exception.CustomizeException;
import cn.technology.forum.mapper.NotificationMapper;
import cn.technology.forum.model.Notification;
import cn.technology.forum.model.NotificationExample;
import org.apache.ibatis.session.RowBounds;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

@Service
public interface NotificationService {


    PaginationDTO list(Long userId, Integer page, Integer size);

    Long unreadCount(Long userId);

    NotificationDTO read(Long id, UserDTO user);

    int removeAllByUserId(Long id);

    int removeById(Long id);

    int readAllByUserId(Long id);
}
